﻿using HCQ2_Model;
using HCQ2_Model.APPModel.ParamModel;
using HCQ2_Model.DocModel.APIParam;
using HCQ2_Model.DocModel.APIResultModel;
using HCQ2_Model.VLine.OutputDto;
using HCQ2_Model.VLine.Params;
using HCQ2_Model.VR.Params;
using HCQ2_Model.WeiXinApiModel.ResultApiModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HCQ2_IDAL
{
    public partial interface IT_VRExperienceRecordDAL
    {
        //******************************************pc*********************************************
        /// <summary>
        ///  获取体验记录列表
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        List<T_VRExperienceRecord> GetRecordList(ExperRecordModel param);
        /// <summary>
        ///  获取体验列表记录数量
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        int GetRecordNumCount(ExperRecordModel param);
        /// <summary>
        ///  获取体验排行列表
        /// </summary>
        /// <param name="param">查询参数</param>
        /// <param name="total">返回记录数量</param>
        /// <returns></returns>
        List<ExperienceRankModel> GetRecordRankList(ExperRecordModel param, string user_guid, out int total);
        //******************************************接口*******************************************
        /// <summary>
        ///  获取体验记录列表
        /// </summary>
        /// <param name="model"></param>
        /// <param name="userId">用户id</param>
        /// <returns></returns>
        List<T_VRExperienceRecord> GetRecordListByUser(QueryRecordModel model,int userId);
        /// <summary>
        ///  获取体验排行：根据体验记录统计查询获得
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        List<ExperienceRankModel> GetPopularityRankList(QueryRecordModel model);
        /// <summary>
        ///  获取个人成绩
        /// </summary>
        /// <param name="mdel"></param>
        /// <returns></returns>
        List<UserScoreRankModel> GetScoreByUser(HCQ2_Model.DocModel.APIParam.UserScoreParam model, int user_id);
        /// <summary>
        ///  头记获取：比赛排名列表前10
        /// </summary>
        /// <param name="model"></param>
        /// <param name="in_date"></param>
        /// <param name="out_date"></param>
        /// <returns></returns>
        List<GameRankModel> GetGameRankList(GameRank model,string in_date,string out_date);
        /// <summary>
        ///  获取我的比赛排名站位
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        Task<int> GetMyGameRank(MyGameRank model,int user_id,string in_date,string out_date);
    }
}
